home *** CD-ROM | disk | FTP | other *** search
- UMS UUCP V0.8 01-Dec-1993
-
-
- Disclaimer
- ----------
-
- Permission is granted to make and distribute verbatim copies of this
- manual provided the copyright notice and this permission notice are
- preserved on all copies.
-
- COPYRIGHT
-
- Copyright (C) 1992-93 Stefan Becker
-
- No program, document, data file or source code from this software
- package, neither in whole nor in part, may be included or used in other
- software packages unless it is authorized by a written permission from
- the author.
-
-
- NO WARRANTY
-
- There is no warranty for this software package. Although the author
- has tried to prevent errors, he can't guarantee that the software package
- described in this document is 100% reliable. You are therefore using this
- material at your own risk. The author cannot be made responsible for any
- damage which is caused by using this software package.
-
-
- DISTRIBUTION
-
- This software package is freely distributable. It may be put on any
- media which is used for the distribution of free software, like Public
- Domain disk collections, CDROMs, FTP servers or bulletin board systems.
-
- In order to ensure the integrity of this software package,
- distributors should use the original archive file umsuucp0_8.lha. The
- author cannot be made responsible if this software package has become
- unusable due to modifications of the archive contents or of the archive
- file itself.
-
- There is no limit on the costs of the distribution, e.g. for the
- media, like floppy disks, streamer tapes or compact disks, or the process
- of duplicating. Such limits have been proven to be harmful to the idea of
- freely distributable software, e.g. instead of reducing the price of the
- floppy disk below the limit, the software was simply removed from the
- master disk.
-
- Although the author does not impose any limit on the distribution of
- this software package, he would like to express his personal opinions on
- this matter:
-
- * This software package should be made available to everyone free of
- charge whenever it is possible.
-
- * If you have acquired this software package under normal conditions
- from a Public Domain dealer on a floppy disk at a price higher than
- 5DM or US $5, then you have definitely paid too much. Please don't
- support this improper profit making any longer and switch to a
- cheaper source as soon as possible.
-
-
- USAGE RESTRICTIONS
-
- No program, document, data file or source code from this software
- package, neither in whole nor in part, may be used on any machine which
- is used
-
- * for the research, development, construction, testing or production
- of weapons or other military applications. This also includes any
- machine which is used in the education for any of the above
- mentioned purposes.
-
- * by people who accept, support or use violence against other people,
- e.g. citizens from foreign countries.
-
-
- Introduction
- ------------
-
- This is an UUCP importer/exporter package for UMS V10. It contains all
- binaries and documentation to run a minimum UUCP node with UMS. If you
- need more features, please get the AmigaUUCP 1.16 or the wUUCP package.
- You only need to replace the uuxqt binary in that package with the UMS
- UUCP uuxqt.
-
- If you already have an UUCP node running, you may use the scripts in the
- "convert" directory to import the mail/news articles into the new UMS
- message base. If you are using AmigaUUCP or wUUCP you can recycle the
- configuration files.
-
-
- Archive contents
- ----------------
-
- Directory: bin - Binaries
-
- compress Compression program
- (fast & acceptable compression ratio)
- freeze Compression program
- (slow & good compression ratio)
- gzip Compression program
- (fast & good compression ratio)
-
- ums2uucp UMS UUCP Exporter
- uuxqt UMS UUCP Importer
- testaddress Test program for UUCP addresses
-
- uucico UUCP file transfer program
- uucico116a UUCP file transfer program
- (advanced features like XferStat)
-
- Directory: convert - Scripts to import existing news/mail articles
- into an UMS message base
-
- Directory: docs - Documentation for the enclosed UUCP programs &
- files
-
- Directory: lib - UUCP configuration files
-
- config Node configuration
- L.sys Information about remote systems
- security Access rights for up- and download
- seq Sequence number for UUCP jobs
-
- Directory: libs
-
- OwnDevUnit.library Copy this file to LIBS:
-
-
- Information about your UUCP node
- --------------------------------
-
- Each UUCP node has a name. This name must not be longer than 7 characters
- and may only contain lowercase characters, e.g. "foobar". Additionally
- you need to know in which domain your node will reside. With this
- information you can build the domain name of your node, e.g.
- "foobar.earth.sol.galaxy".
-
- This information is stored in the configuration variables
- "uucp.nodename", "uucp.domainname" and "uucp.pathname". Look into the
- section "Configuration variables" for more information.
-
-
- UUCP Node setups
- ----------------
-
- A UUCP node can be set up in three different ways:
-
- - Leaf node
-
- A leaf node is the last system on the message distribution chain.
- Such a node imports messages from one or more remote systems, but
- doesn't export those messages to other systems. Only local
- messages are exported to the remote systems. Most users should
- use this mode, because it's very easy to maintain.
-
- UMS behaves like a leaf node, when the UMS configuration variable
- "FullNode" is set to 0.
-
- - Full node
-
- A full node is located inside the message distribution chain. It
- imports messages from remote systems and exports them to other
- remote systems. The maintainer of such a system must control the
- message flow between the systems very carefully in order to
- prevent loops and duplicate messages. Only experienced users
- should use this mode.
-
- UMS behaves like a full node, when the UMS configuration variable
- "FullNode" is set to 1. The message flow between the systems is
- controlled with the variables "readaccess" and "export".
-
- - Gateway
-
- A gateway behaves like a full node, but additionally it can
- distribute messages between UUCP and non RFC compliant nets. Such
- systems are very delicate to handle, can cause many headaches and
- create many enemies and flame wars. Only VERY VERY experienced
- users should use this mode. You have been warned!
-
- UMS behaves like a gateway, when the UMS configuration variable
- "FullNode" is set to 1 and the variable "GateKey" is set to a
- valid key. Please contact <mh@umshq.dfv.rwth-aachen.de> for
- further information on the key.
-
-
- User entries for UUCP
- ---------------------
-
- Every user who wants to write messages that will be exported via UUCP
- needs a UMS config variable "uucp.username". This variable contains the
- "account" name for the user, e.g. "jduser" for the user "Joe Dumb User".
- The UUCP address for such a user will be "jduser@<domain>". In order to
- receive messages under this name, it should be added as an alias to his
- user entry.
-
- Every UUCP node has a special user, called the postmaster. He will
- receive all error messages from the UUCP system. If you have choosen the
- user, who will be the postmaster, add the alias "postmaster" to his user
- entry.
-
-
- Node entries for other systems
- ------------------------------
-
- For each system, which exchanges mails and news with your node, you must
- create a user entry. The name of this user consists of the prefix "uucp."
- and the system name, e.g. "uucp.foobar". One system must be assigned to
- be the default system for UUCP, for which you must add an alias
- "uucp.default" to the user entry.
-
- With the entry "writeaccess" you can control the import of news messages.
- Only messages in groups whose names match the pattern of the
- "writeaccess" entry will be written to the message base. This can be used
- to avoid the creation of unwanted groups through crosspostings.
-
- The entries "readaccess" and "distribution" control the export of news
- messages. Only messages whose distribution field matches the pattern in
- the "distribution" entry and whose group names match the pattern of the
- "readaccess" entry are exported.
-
- The entries "import" and "export" are the corresponding entries for mail
- messages. The patterns from these entries are matched against the
- recipient address. The "export" entry can be used to channel the mail
- messages flow through different systems.
-
-
- Data file formats
- -----------------
-
- Several formats are used for UUCP data files. The messages can be
- transfered as single files. Only mails are transfered in this format
- nowadays, because small files degrade the performance of the file
- transfer.
-
- This can be avoided, if a data file contains several messages. This file
- format is called "batch file". News articles can simply be concatenated
- into one file, because they already contain the message length in the
- header. For mails an adaption of the SMTP format is used, called "Batched
- SMTP" (BSMTP).
-
- To reduce the amount of data which needs to be transfered, batched files
- are usually compressed. Currently in use are three compression programs:
- compress, freeze and gzip. Normally only the plain output of those
- programs is stored in the data file, but compressed news batches can
- addtionally contain a small plaintext header, which identifies the
- compression program.
-
- Every incoming command file contains a command line, which tells the UUCP
- system, what to do with the corresponding data file. The importer uuxqt
- doesn't use the supplied command name, because it interprets the contents
- of the data file. The compression type and the batch mode are
- automatically detected.
-
- The exporter ums2uucp can create any command line format and headers for
- outgoing data files. The two variables "uucp.mailexport" and
- "uucp.newsexport" specify the format. For the exact syntax of this
- variables look into the section "Configuration variables".
-
-
- Layout of the spool directory
- -----------------------------
-
- UMS UUCP supports two different layouts of the spool directory: plain and
- hierarchic.
-
- The plain layout is used by AmigaUUCP. All in- and outgoing files can be
- found in the spool directory. This is sufficient for small nodes with
- only one host. Note that the uucico binaries supplied with the package
- only support the plain layout.
-
- The hierarchic layout is used by wUUCP. For every system a directory with
- the name of the system is created, e.g. "UUSPOOL:foobar" for the system
- "foobar". All in- and outgoing files for this system can be found in that
- directory. If the corresponding directory can't be found, then the plain
- layout is used. This layout is more efficient for nodes with several
- hosts. Note that you need a special uucico to use this layout.
-
- If a job has an error, UMS UUCP doesn't delete it, but marks it. If you
- create a directory "bad-jobs" in the spool dir, then the command and the
- data file of the job will be moved into this directory. If this fails,
- e.g. the directory doesn't exist, then only the command file is renamed
- from "X.*" to "E.*" to prevent the execution of this job in the next
- uuxqt run.
-
-
- UMS configuration variables
- ---------------------------
-
- All UMS variables used by the UUCP programs have the prefix "uucp.", e.g.
- "uucp.pathname". Local variables in a user entry override global
- variables. With this in mind, you should create a global variable for
- every setting with the default value. Now you can override this default
- value with a local variable in the user entry.
-
- Here is a list of all variables:
-
- debugfile (string)
-
- Output file for error logs. Useful only for debugging.
-
- debuglevel (number)
-
- Set the highest log level. Messages with a higher level are not
- logged. Useful only for debugging.
-
- domainname (string)
-
- The domainname for your system, e.g. foobar.earth.sol.galaxy
-
- dumbhost (Y or N)
-
- Set this to "Y" when a host requires RFC976 style UUCP mail envelopes.
-
- Normal envelopes: From <user>@<domain> <date>
- RFC976 envelopes: From <user> <date> remote from <domain>
-
- encoding (string)
-
- This sets the contents encoding type for MIME. Legal values are
- "8bit" or "binary". Normally you should use "8bit", but if you
- can't assure that the line length is always smaller than 1000, then
- use "binary".
-
- export.* (string)
-
- This sets the domain names for exporting messages out of non RFC
- compliant nets. Currently defined are the following variables (with
- their defaults):
-
- FTN (FIDO): uucp.export.fido = .fidonet.org
- Mausnetz : uucp.export.maus = .maus.de
- Z-Netz : uucp.export.zer = .zer.sub.org
-
- import.* (string)
-
- This sets the domain names which the importer should recognize as
- messages from non RFC compliant nets. Currently defined are the
- following variables (with their defaults):
-
- FTN (FIDO): uucp.import.fido = .fidonet.org
- Mausnetz : uucp.import.maus = .maus.de
- Z-Netz : uucp.import.zer = .zer.sub.org
-
- You can specify several domain names by seperating them with ",". The
- address conversion between RFC and UMS is explained in the section
- "Advanced Information".
-
- keepdupes (Y or N)
-
- Normally duplicate messages are flagged as error and the job is not
- deleted. Sometimes dupes can't be avoided, because UUCP is an offline
- protocol, that means there is no way to detect dupes on the sending
- hosts. On a system with several hosts and high traffic this can
- result in a high number of bad job files lying around, which do not
- contain real errors. If you set this variable to "N" then bad jobs,
- which had only dupe errors, are automatically deleted.
-
- mailexport (string)
-
- This variable specifies, in which format mail messages should be
- exported. The syntax is the same as for "newsexport".
-
- mailroute (string, multi-line)
-
- Sometimes it's important to specify static routes for outgoing mails.
- Normally this variable is empty so NO routing information will be
- generated. Each line in this variable consists of an address pattern
- and a list of hosts:
-
- <address pattern> [<host1>[,<host2>....]]
-
- When the recipient address matches the address pattern and the host
- list is not empty, then the exporter ums2uucp will create an explicit
- mail route. The route information will be added AFTER the address
- conversion for non RFC compliant nets has been applied.
-
- If the variable does contain several lines, then the patterns will be
- tried from the first line down to the last line until one pattern
- matches. If no pattern matches, then no route information will be
- generated.
-
- Example:
-
- uucp.mailroute = "#?.maus.de host1
- #?.zer.sub.org host2,host3
- #?.fidonet.org
- #?.de host4"
-
- Test cases:
-
- user@box.maus.de
- user@box.zer.sub.org
- user@f7.n242.z2.fidonet.org
- user@zauber.nase.de
- user@dummy.blubb.edu
-
- These will be transformed to the following mail routes:
-
- - RMail: C rmail host1!box.maus.de!user
- C rmail host2!host3!box.zer.sub.org!user
- C rmail user@f7.n242.z2.fidonet.org
- C rmail host4!zauber.nase.de!user
- C rmail user@dummy.blubb.edu
-
- - BSMTP: RCPT TO: <@host1:user@box.maus.de>
- RCPT TO: <@host2,@host3:user@box.zer.sub.org>
- RCPT TO: <user@f7.n242.z2.fidonet.org>
- RCPT TO: <@host4:user@zauber.nase.de>
- RCPT TO: <user@dummy.blubb.edu>
-
- newsexport (string)
-
- This variable specifies, in which format news articles should be
- exported. The syntax is as follows:
-
- <command>[,<batch>[,<compress command>[,<header>[,<max size>]]]]
-
- command - Command name for the "C" line in the command file. You
- have to talk to your host which commands his software
- accepts and how it interprets them. The following table
- shows some common names:
-
- Name | Meaning
- -----------------------------------------------
- rmail | unbatched, uncompressed mail
- rbsmtp | batched, uncompressed mail
- rcbsmtp | batched, compressed (compress) mail
- rbcsmtp | batched, compressed (compress) mail
- rfbsmtp | batched, compressed (freeze) mail
- rbfsmtp | batched, compressed (freeze) mail
- rgbsmtp | batched, compressed (gzip) mail
- rbgsmtp | batched, compressed (gzip) mail
- rnews | (un)batched, (un)compressed news
-
- batch (Y or N) - Batch messages (Default: No)
-
- compress command - Name of the compression command (Default: None)
- Legal values are: <None>, compress, freeze or gzip
-
- header - Data file header (Default: None)
- If this field is not empty, then the following header
- line will be created in the data file:
-
- "#! <header text>"
-
- The following table shows some common header texts:
-
- Name | Meaning
- ------------------------------------------------
- cunbatch | batched, compressed (compress) news
- funbatch | batched, compressed (freeze) news
- gunbatch | batched, compressed (gzip) news
-
- max size (number) - Number of bytes for one batch
- (Default: 65536 Bytes)
-
- Examples:
-
- - unbatched, uncompressed mail:
-
- uucp.mailexport=rmail
-
- - batched, uncompressed mail, no header, batch size 65536 Bytes:
-
- uucp.mailexport=rbsmtp,Y
-
- - batched, compressed mail, no header, batch size 300000 Bytes:
-
- uucp.mailexport=rcbsmtp,Y,compress,,300000
-
- - batched, uncompressed news, no header, batch size 300000 Bytes:
-
- uucp.newsexport=rnews,Y,,,300000
-
- - batched, compressed news, with header (#! cunbatch), batch size
- 65536 Bytes:
-
- uucp.newsexport=rnews,Y,compress,cunbatch
-
- nodename (string)
-
- UUCP Node name for your system, e.g. foobar. This name should not be
- longer than 7 characters.
-
- pathname (string)
-
- The name of your system in the "Path:" line for news articles. If
- your system is a registered UUCP node, then set this variable to the
- contents of the variable "nodename", otherwise to the contents of the
- variable "domainname".
-
- Registered node : foobar
- Not registered node: foobar.earth.sol.galaxy
-
- username (string)
-
- This is the "account" name for a user, e.g. joedumb. Every UMS user
- who wants to use UUCP news & mail MUST have this variable in his user
- entry. The address of this user will be <username>@<domainname>, e.g.
- joedumb@foobar.earth.sol.galaxy.
-
-
- Environment variables
- ----------------------
-
- Currently only one environment variable is used:
-
- UMSUUCP.mb (string) - Name of the UMS message base, e.g. test
- (Default: default message base)
-
-
- Command syntax
- --------------
-
- Exporter: ums2uucp [-b<bit>] [-d<level>] -s<system>
-
- bit : Bit number of an additional select bit (default: 0). Only
- messages with this bit set in the user flags will be
- exported. This can be used to run a special filter program
- before ums2uucp.
- level : Debug level for UUCP log messages (default: 0)
- system : Export messages for this system
-
- Importer: uuxqt [-d<level>] [<system>]
-
- level : Debug level for UUCP log messages (default: 0)
- system : Import messages from this system. You must specify this
- parameter if you use the hierarchic layout of the
- spool directory.
-
-
- Log and error messages
- ----------------------
-
- After processing, uuxqt writes the following messages to the UUCP log
- file:
-
- files (x/y) in (x/y) mail (x/y) news (x/y) cross (x/y)
-
- x - Sum of all items (bad & good)
- y - Items with errors
- files - Processed command files. Files with errors are not
- deleted.
- in - Imported messages (in = mail + news + cross)
- mail - Imported mails
- news - Imported news articles
- cross - Crossposted news articles. An error may occur in
- crossposting, when the importer doesn't have write
- access to a group. This is not a real error, because
- such messages are simply ignored.
-
- Additional information about the errornous jobs will be written into the
- error log, which will be sent to the user "postmaster".
-
-
- Example node setup
- ------------------
-
- This section will describe a simple UUCP node setup with only one host to
- poll. Here is the list of information for our system:
-
- Account name : jduser
- Node name : foobar
- Domain name : foobar.earth.sol.galaxy
- Registered Node : No
- UUCP Host : mars
- UUCP login : Ufoobar
- UUCP password : topsecret
- Mail export : not batched, needs RFC976 envelopes
- News export : batched, 100KB batches, use compress with header
- Spool directory : DH0:uucp/spool
- UUPUB directory : DH0:uucp/public
- UULIB directory : DH0:uucp/lib
-
- Add these three assigns to S:user-startup:
-
- Assign UUSPOOL: DH0:uucp/spool
- Assign UUPUB: DH0:uucp/public
- Assign UULIB: DH0:uucp/lib
-
- The spool directory will contain the in- and outgoing files (see section
- "layout of the spool directory"). The UUPUB directory does contain the
- public accessable files, which can be downloaded via UUCP from your
- system. The UULIB directory contains the UUCP configuration files.
-
- Now follow the UUCP configuration file for the example node. For a
- complete documentation of these files look into the documentation for
- AmigaUUCP.
-
- File: UULIB:config
-
- NodeName foobar
- UserName root
- Debug 0
-
- File: UULIB:L.sys
-
- # host BPS Dial cmd Send-Expect Sequence
- mars Any SER: 19200 ATDP12345 ogin:-\r-ogin: Ufoobar ssword: topsecret\r
-
- File: UULIB:sequrity
-
- UUPUB: rw
-
- Add the following lines to your UMS configuration file:
-
- uucp.nodename = foobar
- uucp.pathname = foobar.earth.sol.galaxy
- uucp.domainname = foobar.earth.sol.galaxy
- uucp.mailexport = rmail
- uucp.dumbhost = Y
- uucp.newsexport = rnews,Y,compress,cunbatch,100000
-
- user
- name = uucp.mars
- writeaccess = #?
- readaccess = #?
- netaccess = #?
- distribution = #?
- import = #?
- export = #?
- alias = uucp.default
- enduser
-
- Add the following lines to your user entry:
-
- alias = postmaster
- uucp.username = jduser
-
- Now you can exchange news and mail with the system "mars". Use the
- following commands to export messages for this system and to call it up:
-
- ums2uucp -smars
- uucico -smars
-
-
- Advanced information
- --------------------
-
- UMS itself is not a RFC system, which means that all messages must be
- transformed from the RFC format to the UMS format and vice versa. Not
- every piece of RFC information is used or stored by UMS, so the importer
- must preserve the original information. All RFC header fields, which are
- not known to the importer, are preserved.
-
- There are two exceptions to this rule:
-
- - The order of the RFC header fields is not always preserved.
- Luckily, the RFC standard does not impose a strict order for most
- of the header fields.
-
- - If the message is a MIME message and the importer can decode the
- information, the exporter will not reconstruct the original message
- text. Instead it will create new MIME headers which specify the new
- format.
-
- The exporter uses the additional information, which is stored by the
- importer, to reconstruct the original messages.
-
- Here are some examples, where preserving of the information is needed:
-
- - From/Reply-To
-
- These RFC fields contain the address and maybe the real name of
- the user. Since this information is stored in two seperates UMS
- fields, these lines must be parsed to extract the needed
- information. This parsing process is not reversible.
-
- - Newsgroups
-
- Crosspostings are stored as hard-linked messages, which appear in
- different groups. But the importer for a system may not have
- write access to all groups in the crossposting, so exporters
- can't reconstruct this line by reading all hard-linked messages.
-
- - References
-
- UMS only uses one message ID for message threading.
-
- Mapping of RFC fields to UMS fields:
-
- RFC header | UMS fields | Preserved
- ----------------------------------------------------------------------
- Control | - (only cancel commands will be processed) | Yes
- Date | Date |
- Distribution | Distribution |
- Followup-To | ReplyGroup |
- From | FromAddress & FromName (RFC1342-decoded) | Yes
- In-Reply-To | ReferID | Yes
- Message-ID | MessageID |
- Newsgroups | Group (X messages hard linked) | Yes
- Organization | Organization (RFC1342-decoded) |
- References | ReferID (the last id in the header line) | Yes
- Reply-To | ReplyAddress & ReplyName (RFC1342-decoded) | Yes
- Subject | Subject (RFC1342-decoded) |
- X-Mailer | Newsreader |
- X-NewsReader | Newsreader |
- <all others> | Comment | Yes
-
- Because UMS is a universal message system, some messages may originate
- from a non RFC compliant net. The importer uuxqt tries to recognize such
- messages and converts the RFC address to the UMS address format for the
- net. The exporter ums2uucp can export such messages and converts the UMS
- address for the net into a RFC compliant address. The following address
- formats are supported:
-
- FTN (FIDO)
-
- - RFC : <Real_Name>@[p<pnt>.]f<node>.n<hub>.z<zone><domain>
- - UMS Name : Real Name
- - UMS Addr : <zone>:<hub>/<node>[.<pnt>]@fidonet
-
- Mausnetz
- - RFC : <Real_Name>@<box><domain>
- - UMS Name : Real Name
- - UMS Addr : <box>.maus
-
- Z-Netz
- - RFC : <login>@<box><domain>
- - UMS Addr : <login>@<box>.zer
-
- The domain part for import and export can be controlled with the
- configuration variables "uucp.import.*" and "uucp.export.*".
-
-
- Contact address
- ---------------
-
- The author (Stefan Becker) can be reached at the following addresses:
-
- stefanb@pool.informatik.rwth-aachen.de
- stefanb@yello.adsp.sub.org
-
-